package cn.itsource.mq.delay;


import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;

/**
 * 延迟消息
 */
public class DelayProducer {
    public static void main(String[] args) throws Exception{
        //1创建生产者实例                                       这个是唯一的生产者的组名
        DefaultMQProducer producer = new DefaultMQProducer("mq-delay-producer-group");
        producer.setNamesrvAddr("127.0.0.1:9876");//2设置mq地址 连接nameServer的ip和端口号
        producer.start();//3启动生产者  需要抛异常
        //4发送消息前需要创建   三个参数  topic 消息的分类一级分类  tag二级分类  body是实际需要发送的消息

        byte[] msgByteArray = "延迟消息".getBytes(RemotingHelper.DEFAULT_CHARSET);
        Message message = new Message("delay-topic", "delay-tag",msgByteArray);

        //设置延迟等级
        message.setDelayTimeLevel(3);

        SendResult sendResult = producer.send(message);//5调用方法发送消息
        System.out.println(sendResult);
        producer.shutdown();//6关闭资源

    }
}
